using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;


namespace MenuComponent
{
    /// <summary>
    /// Implementacion de variables del movimiento del pacman
    /// </summary>
    public class movimiento_pacman 
    {
       public int  Posicion_pacman;
        int tiempo;
        public int contador_puntos;
           
        public movimiento_pacman()
       
        {

            // TODO: Construct any child components here
        }

        /// <summary>
        /// aqui iniciamos las variables del pacman para poder usarlas mas adelante
        /// </summary>
        /// 
     
        public  void Initialize()
        {
           // matriz = menuComponent.matriz;
            // TODO: Add your initialization code here
            Posicion_pacman = 4;
            tiempo = 0;
            contador_puntos = 0;
           
        }
       
        /// <summary>
        /// rescato la matriz principal pasada por el juego y analizo el movimiento a la vez k lo ejecuto
        /// situa el pacman en la posicion presente y futura para averiguar si el movimiento es posible
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
    
        
        public  void Update(int[,] matriz)
        {
           
            tiempo++;
            if (tiempo == 8)
            {
                int x = 0;
                int y = 0;

                int i;
                int z;
                for (i = 0; i < 20; i++)
                {
                    for (z = 0; z < 20; z++)
                    {
                        if (matriz[i, z] == 3)
                        {
                            x = i;
                            y = z;
                        }

                    }
                }
                //el movimiento del pacman al darle a una tecla
                if (Keyboard.GetState().IsKeyDown(Keys.Up))
                {
                    Posicion_pacman = 1;
                    if (y > 0)
                    {
                        if ((matriz[x, y - 1] != 2)&&(matriz[x, y - 1] != 4)&&(matriz[x, y - 1] != 5))
                        {
                            if (matriz[x, y - 1] == 1)
                                contador_puntos++;
                            matriz[x, y] = 0;
                            matriz[x, y - 1] = 3;
                            
                        }
                    }
                }
                else if (Keyboard.GetState().IsKeyDown(Keys.Down))
                {
                    Posicion_pacman = 2;
                    if (y < 19)
                    {
                        if ((matriz[x, y + 1] != 2)&&(matriz[x, y + 1] != 4)&&(matriz[x, y + 1] != 5))
                        {
                            if (matriz[x, y + 1] == 1)
                                contador_puntos++;
                            matriz[x, y] = 0;
                            matriz[x, y + 1] = 3;
                        }
                    }
                }
                else if (Keyboard.GetState().IsKeyDown(Keys.Left))
                {
                    Posicion_pacman = 3;
                    if (x > 0)
                    {
                        if ((matriz[x - 1, y] != 2) && (matriz[x - 1, y] != 4) && (matriz[x - 1, y] != 5))
                        {
                            if (matriz[x-1, y ] == 1)
                                contador_puntos++;
                            matriz[x, y] = 0;
                            matriz[x - 1, y] = 3;
                        }
                    }
                }
                else if (Keyboard.GetState().IsKeyDown(Keys.Right))
                {
                    Posicion_pacman = 4;
                    if (x < 19)
                    {
                        if ((matriz[x + 1, y] != 2)&&(matriz[x+1, y ] != 4)&&(matriz[x+1, y] != 5))
                        {
                            if (matriz[x+1, y ] == 1)
                                contador_puntos++;
                            matriz[x, y] = 0;
                            matriz[x + 1, y] = 3;
                        }
                    }
                }
                tiempo = 0;
              
            }
            // TODO: Add your update code here
           
         
        }
      
    }
}